package minix.components;

import minix.entities.Profil;

import org.apache.tapestry5.annotations.Log;
import org.apache.tapestry5.hibernate.annotations.CommitAfter;
import org.apache.tapestry5.ioc.annotations.Inject;
import org.hibernate.Session;
import org.hibernate.criterion.Restrictions;
import org.slf4j.Logger;
import org.springframework.security.core.context.SecurityContextHolder;

public class NominerNyttMedlem {

	@Inject
	private Logger logger;
	@Inject
	private Session session;
	private Profil nyProfil;
	private Profil profilenTilBrukerenSomNominerer;

	private Profil hentProfilenTilInloggetBruker() {
		String brukernavn = SecurityContextHolder.getContext().getAuthentication().getName();
		Profil tmpProfil = (Profil) session.createCriteria(Profil.class).add(Restrictions.eq("brukernavn", brukernavn))
				.uniqueResult();
		return tmpProfil;
	}

	@Log
	@CommitAfter
	void onSubmit() {
		nyProfil.setNominert(true);
		nyProfil.setMedlem(false);
		logger.debug("________________________" + hentProfilenTilInloggetBruker().getBrukernavn());
		nyProfil.leggTilNominertAv(profilenTilBrukerenSomNominerer);
		session.persist(nyProfil);
	}

	public Profil getNyProfil() {
		return nyProfil;
	}

	public void setNyProfil(Profil nyProfil) {
		this.nyProfil = nyProfil;
	}

	public Profil getProfilenTilBrukerenSomNominerer() {
		return profilenTilBrukerenSomNominerer;
	}

	public void setProfilenTilBrukerenSomNominerer(Profil profilenTilBrukerenSomNominerer) {
		this.profilenTilBrukerenSomNominerer = profilenTilBrukerenSomNominerer;
	}

}
